package com.ophiux.cs.domain.user.repositories;

import java.util.List;

import com.ophiux.cs.domain.user.model.entity.User;
import com.ophiux.cs.domain.user.model.valueobj.UserValueObj;
import com.ophiux.utils.exception.OphiuxRepositoryException;

public interface IUserRepository {
	/**
	 * 根据用户账号获取用户信息
	 * @param userAcc 用户账号
	 * @return com.ophiux.cs.domain.user.model.entity.User 
	 */
	List<User> getUserByUserAcc(String userAcc) throws OphiuxRepositoryException;

	/**
	 * 说明：根据账号和角色查询   是否存在记录<br>
	 * <h1>创 建 人: hehailong<br></h1>
	 * 创建日期: 2018年10月22日 下午2:41:13<br>
	 * @param obj
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	User getUser(UserValueObj obj) throws OphiuxRepositoryException;
	
	/**
	 * 根据用户唯一标识获取用户信息
	 * @param userId
	 * @return
	 */
	User getUserByUserId(String userId) throws OphiuxRepositoryException;
	/**
	 * 保存用户信息
	 * @param userInfo 用户信息实体
	 * @return true 保存成功 false 保存失败
	 */
	boolean savaUser(User userInfo) throws OphiuxRepositoryException;
	/**
	 * 修改用户信息
	 * @param userInfo
	 * @return true 修改成功 false 修改失败
	 */
	boolean upUserByUserId(User userInfo) throws OphiuxRepositoryException;
	
//	/**
//	 * 保存用户信息(事物执行)
//	 * @param userInfo 用户信息实体
//	 * @return true 保存成功 false 保存失败
//	 */
//	boolean savaUser(User userInfo,DataHandl handler);
}
